home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / management / JMX.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.6 KB  |  61 lines

  1. package javax.management;
  2.  
  3. import com.sun.jmx.mbeanserver.Introspector;
  4. import java.lang.reflect.Proxy;
  5.  
  6. public class JMX {
  7.    static final JMX proof = new JMX();
  8.    public static final String DEFAULT_VALUE_FIELD = "defaultValue";
  9.    public static final String IMMUTABLE_INFO_FIELD = "immutableInfo";
  10.    public static final String INTERFACE_CLASS_NAME_FIELD = "interfaceClassName";
  11.    public static final String LEGAL_VALUES_FIELD = "legalValues";
  12.    public static final String MAX_VALUE_FIELD = "maxValue";
  13.    public static final String MIN_VALUE_FIELD = "minValue";
  14.    public static final String MXBEAN_FIELD = "mxbean";
  15.    public static final String OPEN_TYPE_FIELD = "openType";
  16.    public static final String ORIGINAL_TYPE_FIELD = "originalType";
  17.  
  18.    private JMX() {
  19.    }
  20.  
  21.    public static <T> T newMBeanProxy(MBeanServerConnection var0, ObjectName var1, Class<T> var2) {
  22.       return (T)newMBeanProxy(var0, var1, var2, false);
  23.    }
  24.  
  25.    public static <T> T newMBeanProxy(MBeanServerConnection var0, ObjectName var1, Class<T> var2, boolean var3) {
  26.       return (T)MBeanServerInvocationHandler.newProxyInstance(var0, var1, var2, var3);
  27.    }
  28.  
  29.    public static <T> T newMXBeanProxy(MBeanServerConnection var0, ObjectName var1, Class<T> var2) {
  30.       return (T)newMXBeanProxy(var0, var1, var2, false);
  31.    }
  32.  
  33.    public static <T> T newMXBeanProxy(MBeanServerConnection var0, ObjectName var1, Class<T> var2, boolean var3) {
  34.       try {
  35.          Introspector.testComplianceMXBeanInterface(var2);
  36.       } catch (NotCompliantMBeanException var7) {
  37.          throw new IllegalArgumentException(var7);
  38.       }
  39.  
  40.       MBeanServerInvocationHandler var4 = new MBeanServerInvocationHandler(var0, var1, true);
  41.       Class[] var5;
  42.       if (var3) {
  43.          var5 = new Class[]{var2, NotificationEmitter.class};
  44.       } else {
  45.          var5 = new Class[]{var2};
  46.       }
  47.  
  48.       Object var6 = Proxy.newProxyInstance(var2.getClassLoader(), var5, var4);
  49.       return (T)var2.cast(var6);
  50.    }
  51.  
  52.    public static boolean isMXBeanInterface(Class<?> var0) {
  53.       if (!var0.isInterface()) {
  54.          return false;
  55.       } else {
  56.          MXBean var1 = (MXBean)var0.getAnnotation(MXBean.class);
  57.          return var1 != null ? var1.value() : var0.getName().endsWith("MXBean");
  58.       }
  59.    }
  60. }
  61.